package io;

import java.io.FileInputStream;
import java.io.IOException;

public class FISDemo {
    public static void main(String[] args) throws IOException {
        /*
             InputStream上定义了所有字节输入流都必须具备的读取操作:
            int read()从流中读取一个字节，返回的int值只有"低八位"有效。但是如果返回的int值为
             整数-1，则表达的是流读取到了末尾
         */
        FileInputStream fis = new
                FileInputStream("./tedu-javase02/fos.dat");
        /*
           fos.dat文件中的数据: 00000001 00000010
           当我们第一次调用文件输入流的读取字节操作:int d = fis.read();
            00000001 00000010
            ^^^^^^^^
            读取的字节
            int d接收的返回值2进制的样子: 00000000 00000000 00000000 00000001
           |----会固定的补充24个0-----| 读取的字节
         */
        int a = fis.read();
        System.out.println(a);
       /*
        当我们第二次调用文件输入流的读取字节操作:d = fis.read();
             00000001 00000010
              ^^^^^^^^
               读取的字节
            int d接收的返回值2进制的样子:
            00000000 00000000 00000000 00000010
            |----会固定的补充24个0-----| 读取的字节
        */
        a = fis.read();
        System.out.println(a);

        /*
        当我们第三次调用文件输入流的读取字节操作: d = fis.read();
             00000001 00000010
              ^^^^^^^^
              文件末尾
            int d接收的返回值2进制的样子: 11111111 11111111 11111111 11111111
             -1是一个特殊值，这是正常读取一个字节永远表达不了的2进制样子来表示文件末尾
         */
        a = fis.read();
        System.out.println(a);
        fis.close();
    }
}
